package com.pond.pond.domain.vo;

import com.pond.pond.domain.MyPondDeptImage;
import com.pond.pond.domain.Pond;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;

/**
 * App端钓场展示用VO（视图对象）
 * 用于封装前端展示钓场详细信息，包括基础信息、图片、鱼种、设施等
 */
@Data
@Getter
@Setter
public class AppVo {
    /** 钓场ID */
    private Long id;

    /** 钓场名称 */
    private String name;

    /** 钓场描述 */
    private String description;

    /** 钓场相关图片列表，来源于钓场部门图片表 */
    private List<MyPondDeptImage> images;

    /** 钓场地址 */
    private String address;

    /** 纬度 */
    private BigDecimal latitude;

    /** 经度 */
    private BigDecimal longitude;

    /** 与用户当前位置的距离，单位米（或公里，根据业务需求） */
    private Double distance;

    /** 钓场评分 */
    private Double rating;

    /** 评分人数 */
    private Integer reviewCount;

    /** 价格区间，如“20-50元” */
    private String priceRange;

    /** 鱼种列表，字符串列表形式，如“草鱼”、“鲤鱼”等 */
    private List<String> fishTypes;

    /** 钓场设施列表，如“停车场”、“卫生间”等 */
    private List<String> facilities;

    /** 营业时间，如“06:00-23:00” */
    private String openHours;

    /** 联系电话 */
    private String phone;

    /** 是否营业 */
    private Boolean isOpen;

    /** 是否有停车场 */
    private Boolean hasParking;

    /** 是否有卫生间 */
    private Boolean hasRestroom;

    /** 是否有餐厅 */
    private Boolean hasRestaurant;

    /** 是否允许夜钓 */
    private Boolean allowsNightFishing;

    /** 钓场难度等级，如“简单”、“中等”、“困难” */
    private String difficulty;

    /** 钓场下的所有鱼塘 */
    private List<Pond> pondList;
}
